#!/bin/sh -
#
# $Id$
#
# Run the collections/bind test suite.

# NOTES:
# This test requires one JAR not included with the Berkeley DB
# distribution:  JUnit (junit.jar) I've been using the 8/31/2002 version
# of JUnit.  You can download this JAR from http://jakarta.apache.org/
#
# JUNIT_JAR=/Users/gburd/Unix/opt/junit/junit.jar

[ "x$JUNIT_JAR" = "x" ] && {
	echo 'FAIL: unset environment variable JUNIT_JAR for junit.jar.'
	exit 1
}

[ -f $JUNIT_JAR ] || {
	echo 'FAIL: JUNIT_JAR not a valid path to the junit.jar.'
	exit 1
}

case `uname` in
	*CYGWIN*)
	d=../../build_windows/Win32/Debug
	DB_LIB_DIR="$d"
	REQUIRED_JARS="`cygpath -m $JUNIT_JAR`"
	CP_SEP=";"
	PATH="../../build_windows/Win32/Debug:$PATH"
	export PATH;;
	*)
	d=../../build_unix
	REQUIRED_JARS=$JUNIT_JAR
	DB_LIB_DIR="$d/.libs"
	CP_SEP=":"
	;;
esac
TESTDESTDIR=${TESTDESTDIR:-testdestdir}
DB_JAR="$d/db.jar"
export DB_JAR
export REQUIRED_JARS
export CP_SEP

# Build the tests.

make clean

[ -f ./dbtest.jar ] || (make dbtest.jar) || {
	echo 'FAIL: unable to find or build dbtest.jar'
	exit 1
}

# Perform initialization needed before StoredClassCatalogTest is run in
# the tests below.  The testserial directory must be first in the classpath.

c="com.sleepycat.collections.test.serial.StoredClassCatalogTestInit"
echo "Running: $c"
if java -Djava.library.path=$DB_LIB_DIR -Dtestdestdir=$TESTDESTDIR \
    -cp "testserial${CP_SEP}$REQUIRED_JARS${CP_SEP}$DB_JAR${CP_SEP}./dbtest.jar" $c ; then
        :
else
    echo "FAIL: test program failed"
    exit 1
fi

# Run the tests.

for f in `find classes -name "*Test.class"`; do
    c=`echo "$f" | sed -e 's/classes\///' -e 's/\.class//' -e 's/\//./g'`
    echo "Running: $c"
    if java -Djava.library.path=$DB_LIB_DIR -Dtestdestdir=$TESTDESTDIR\
	    -cp $REQUIRED_JARS${CP_SEP}$DB_JAR${CP_SEP}./dbtest.jar $c ; then
            :
    else
        echo "FAIL: test program failed"
        exit 1
    fi
done

exit 0
